import NProgress from "nprogress";
import "nprogress/nprogress.css";
import $config from "@/config";

NProgress.configure({
  // 动画方式
  easing: "ease",
  // 递增进度条的速度
  speed: 500,
  // 是否显示加载ico
  showSpinner: false,
  // 自动递增间隔
  trickleSpeed: 200,
  // 初始化时的最小百分比
  minimum: 0.3
});

// 编者按：这里设置了当使用桌面端时控制顶部进度条的限制，即仅在请求非本地服务器时才会显示
// 这里主要因为当项目或后端服务器运行于本地时，不显示进度条可以加快流畅度

export default {
  /** 开启进度条动画 */
  start: (isRequest: boolean = false) => {
    if (!window.platform || (isRequest && $config.runMode !== "lan")) {
      NProgress.start();
    }
  },
  /** 关闭进度条动画 */
  done: (isRequest: boolean = false) => {
    if (!window.platform || (isRequest && $config.runMode !== "lan")) {
      NProgress.done();
    }
  }
};
